package com.sky.service;

import com.sky.dto.SetmealDTO;
import com.sky.dto.SetmealPageQueryDTO;
import com.sky.entity.Setmeal;
import com.sky.result.PageResult;
import com.sky.vo.DishItemVO;
import com.sky.vo.SetmealVO;

import java.util.List;

/**
 * @BelongsProject: sky-take-out
 * @Author: song
 * @CreateTime: 2024-01-02  14:26
 * @Description: TODO
 * @Version: 1.0
 */
public interface SetmealService {
    /*
     * @description:新增套餐，同时需要保存套餐和菜品的关联关系
     * @author: song
     * @date: 2024/1/2 14:26
     * @param:
     * @return:
     **/
    public void saveWithDish(SetmealDTO setmealDTO);
    /*
     * @description:套餐分页查询
     * @author: song
     * @date: 2024/1/2 14:54
     * @param: [setmealPageQueryDTO]
     * @return: com.sky.result.PageResult
     **/
    PageResult pageQuery(SetmealPageQueryDTO setmealPageQueryDTO);
    /*
     * @description:批量删除套餐
     * @author: song
     * @date: 2024/1/2 15:12
     * @param: [ids]
     * @return: void
     **/
    void deleteBatch(List<Long> ids);
    /*
     * @description:根据id查询套餐信息
     * @author: song
     * @date: 2024/1/2 15:38
     * @param: [id]
     * @return: com.sky.vo.SetmealVO
     **/
    SetmealVO getByIdWithDish(Long id);
    /*
     * @description:修改套餐
     * @author: song
     * @date: 2024/1/2 15:45
     * @param: [setmealDTO]
     * @return: void
     **/
    void update(SetmealDTO setmealDTO);
    /*
     * @description:起售停售
     * @author: song
     * @date: 2024/1/2 16:14
     * @param: [status, id]
     * @return: void
     **/
    void startOrStop(Integer status,Long id);

    List<Setmeal> list(Setmeal setmeal);

    List<DishItemVO> getDishItemById(Long id);
}
